//
// Created by 17775 on 2024/10/11.
//

#ifndef RAYCI_SINGLE_MEASUREMENT_H
#define RAYCI_SINGLE_MEASUREMENT_H

#include <QString>
#include "RayCiPro_C.h"
#include <QObject>
#include <windows.h>
#include <shellapi.h>

struct SingleAOI {
    int nShape = 0;
    double dPositionX_px = 0;
    double dPositionY_px = 0;
    double dMajor_px = 0;
    double dMinor_px = 0;
    double dAzimuthAngle_px = 0;
};

class Single_Measurement : public QObject {
Q_OBJECT

public slots:
    void exportReport() const;

public:
    explicit Single_Measurement(int & docId);
    int _iSingleDocId = 0;

    bool isRecordingAvailable();
    bool isRecording();

    bool isFrameSpan();
    void setFrameSpan(int frames);
    int getFrameSpan();
    int getFrameStepCount();
    double getTimeSpan();
    void setTimeSpan(double dTime);
    bool isMedianAvailable();
    void setMedianFilter(bool bMedian);
    bool isSingleShot();
    bool isSingleShotAvailable();
    void setSingleShot(bool bSingleShot);
    void start();
    bool isLinkStartAvailable();
    bool isStartLinked();
    void setLinkStart(bool bLink);
    void stop();
    bool isLinkStopAvailable();
    bool isStopLinked();
    void setLinkStop(bool bLink);
    void clear();

    double getSingleWavelength();
    QString getSingleModel();
    QString getRemark();

private:

};


#endif //RAYCI_SINGLE_MEASUREMENT_H
